git 精简版

初始化

1
2
3
git init    //初始化
git add //添加文件到暂存区
git commit //提交更改,并备注

修改

1
2
3
4
5
6
7
git status  //查看工作区状态
git diff //查看修改
(1) git log // 查看历史记录
(2) git log --pretty=oneline //精简版历史记录
(3) git reset --HEAD^ //返回上一个版本 HEAD指向当前版本 -->reset也是操作本地版本,只有push、pull、fetch才能与远程有关
(4) cat readme.txt //打印readme.txt 文件
(5) git reflog //查看提交的每一次记录

编辑

1
2
3
4
5
6
7
8
9
10
1. (1)  git diff HEAD -- readme.txt   //查看工作区和版本库里面最新版本的区别
2. (2) git checkout -- readme.txt //丢弃工作区的修改 "只要add后,用checkout命令,就不会丢弃。"

3. (3) git reset HEAD ( -- )readme.txt //丢弃暂存区的修改,放回到工作区
4. (4) git reset -- HEAD^ //版本回退(这也是一种丢弃工作区的修改,不过这个可以回退到多个前面的版本,如HEAD^^) 前提是你没有推送到远程库
5. (1) git rm test.txt //删除提交到版本库中的文件
6. (1) git remote add origin git@git.suncreate.com:yangliangchuang/MapTest.git //关联本地库到远程库
(2) git push -u origin master //第一次推送本地库到远程库 远程库的名字是origin master是本地库的名字
(3) git push origin master //非第一次提交
7. (1) git clone git@git.suncreate.com:yangliangchuang/MapTest.git //克隆一个本地库

分支

1
2
3
4
5
6
7
8
9
10
11
12
13
   (1)  git checkout -b dev   //相当于 (2)  (3) 拷贝单个分支 不指定分支,就默认拷贝master
(2) git branch dev //新建一个分支,git branch * 打印所有分支
(3) git checkout dev
(4) git merge dev //合并分支
(5) git branch -d dev //删除分支
(6) git log --graph --pretty=oneline --abbrev-commit //打印commit历史记录图
(7) git merge --no-ff -m "merge with no-ff" dev //禁止"Fast forward"

10.(1) git branch -D feature-vulcan //强制删除特征分支

11.(1) git checkout -b dev origin/dev //创建远程origin的dev分支到本地
(2) git push origin dev //推送本地dev分支
(3) git branch --set -upstream dev origin/dev //设置本地分支和远程分支的连接

stash

1
2
3
4
5
(1)  git stash       //储存工作区修改
(2) git stash list //打印工作现场列表
(3) git satsh pop //相当于(4) 和 (5)
(4) git stash apply //恢复不删除stash内容
(5) git stash drop //删除stash内容

“标签”

1
2
3
4
5
6
7
8
9
10
11
(1)  git tag v1.0  //添加标签
(2) git tag //打印所有标签
(3) git show tagname //查看标签信息
(4) git tag -a v0.1 -m "version 0.1 released" 3628164 //-a 指定标签名 -m 指定说明文字
(5) git show v0.1 //查看说明文字
(6) git tag -s v0.2 -m "signed version 0.2 released" fec145a //通过-s用私钥签名一个标签
(7) git tag -d v0.1 //删除标签
(8) git push origin v1.0 //推送某个标签到远程
(9) git push origin --tags //推送多个标签
(10) git tag -d v0.9
git push origin :refs/tags/v0.9 //删除远程推送标签

13.(1)git last //最后一次提交代码

“容易混”

(1)  git reset HEAD readme.txt   //已修改,并且add过后 → 把暂存区的修改撤销掉,注意撤销了还会将修改放到工作区
(2)  git checkout -- readme.txt  //已修改,但是还没有add → 丢弃工作区的修改
(3)  git reset --head  HEAD^     //返回之前的版本

“冲突有两种”

  1. merge时冲突: 打开文件,直接修改两个分支的冲突,然后merge;
  2. 推送分支的时候冲突:先git pull(远程版本较本地新,这是冲突类型之一),pull merge报错(代码有冲突,这是冲突类型之二),先按照上面的方法来解决merge冲突,然后推送;
  • 解决办法:
  1. “stash” 是解决冲突的方法之一,还有最原始的方法就是查看冲突文件,手动改;
  2. 如果修改文件和pull的文件是同一个文件时,要把自己改的代码都提交了,才能pull!

热评文章